/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.tbp.controle;

import br.com.tbp.exception.EmpresaDuplicadaException;
import br.com.tbp.exception.PersistenciaException;
import br.com.tbp.model.domain.Empresa;
import br.com.tbp.persitence.FabricaDePersistencia;
import br.com.tbp.persitence.dao.EmpresaDao;
import java.util.List;

/**
 *
 * @author Diego Freire
 */
public class ControleEmpresa {

    public void adicionar(Empresa e) throws PersistenciaException {
        EmpresaDao dao = FabricaDePersistencia.createEmpresaDao();
        dao.adicionar(e);
    }

    public List<Empresa> pesquisar() throws PersistenciaException {
        EmpresaDao dao = FabricaDePersistencia.createEmpresaDao();
        return dao.pesquisar();
    }

    public void atualizar(Empresa e) throws PersistenciaException {
        EmpresaDao dao = FabricaDePersistencia.createEmpresaDao();
        dao.atualizar(e);
    }

    public void remover(Empresa e) throws PersistenciaException {
        EmpresaDao dao = FabricaDePersistencia.createEmpresaDao();
        dao.remover(e);
    }

    public List<Empresa> pesquisarPorNomeFantasia(String str) throws PersistenciaException {
        EmpresaDao dao = FabricaDePersistencia.createEmpresaDao();
        return dao.pesquisarPorNomeFantasia(str);
    }

    public List<Empresa> pesquisarPorRazaoSocial(String str) throws PersistenciaException {
        EmpresaDao dao = FabricaDePersistencia.createEmpresaDao();
        return dao.pesquisarPorRazaoSocial(str);
    }

    public List<Empresa> pesquisarPorCnpj(String str) throws PersistenciaException {
        EmpresaDao dao = FabricaDePersistencia.createEmpresaDao();
        return dao.pesquisarPorCnpj(str);
    }

    public Empresa pesquisarPorId(long id) throws PersistenciaException {
        EmpresaDao dao = FabricaDePersistencia.createEmpresaDao();
        return dao.pesquisarPorId(id);
    }

    public List<Empresa> pesquisar(int limit1, int limit2) throws PersistenciaException {
        EmpresaDao dao = FabricaDePersistencia.createEmpresaDao();
        return dao.pesquisar(limit1, limit2);
    }

    public long verificarDuplicidade(String cnpj) throws PersistenciaException, EmpresaDuplicadaException {
        EmpresaDao dao = FabricaDePersistencia.createEmpresaDao();
        long empresaId = dao.verificarDuplicidade(cnpj);
        return empresaId;
//        if (duplicada) {
//            throw new EmpresaDuplicadaException("O CNPJ: " + cnpj + " já foi utilizado e não pode ser cadastrado novamente");
//        }
    }
}
